1. Field of Invention
The present invention relates generally to methods and apparatus for use in application builder tools, and more particularly, to methods and apparatus for use in editing properties associated with software components.
2. Background
As computer usage becomes increasingly widespread, the desire for custom computer applications which are specific to the needs of a particular user is also increasing. The use of visual builder tools, or application builder tools, enables computer applications to be readily created. Builder tools generally include standard sets of software modules, or "building blocks," which can be interlinked to create custom-built applications.
Many visual based applications builder tools, as for example Visual Basic, available from Microsoft, Inc. of Redmond, Wash., have a graphical user interface which includes a "toolbox", a "form window", and a "property sheet". A toolbox typically contains icons which represent different classes of components, or software modules. Alternatively, the toolbox may contain text which represents different classes of components. It should be appreciated that many different classes of components may exist. By way of example, different classes can include complex components, e.g., database viewers, and simple components, e.g., buttons. A form window is a display window in which an application may be composed. A component selected from the toolbox may be "dropped", or otherwise placed, within the form window. Placing a component refers to placing an icon, or a screen representation of the component, within the form window. A property sheet displays properties relating to the selected component. The properties can include, but are not limited to, information relating to the size, color, and name of the selected component.
Application builder tools often enable a user to create new data types and, hence, new properties, which correspond to components, as is well-known to those skilled in the art. By way of example, a user can define a data type relating to color, and associate a "color" property to a component which previously had no color. In other words, a user can add color to a component by appropriately defining a data type which relates to color. The ability to create new properties furthers the ability to customize components and, therefore, software applications, to meet the particular needs of a user.
In general, a property sheet displays a set of properties which can be modified to customize, or configure, a given component. Hence, a user can select and modify different properties in the property sheet, or "customizer," in order to customize a component. Editors are often provided for each property that can be modified. As such, the property sheet typically provides an editor for each property which can be updated, or otherwise altered. The editors generally facilitate the editing of properties through the use of graphical user interfaces.
Conventional application builder tools typically provide a fixed set of editors for properties which are associated with a property sheet. While interfacing with fixed sets of editors through the use of property sheets has been shown to be successful in enabling custom applications to be created, the use of fixed sets of editors can be limiting. While many application builder tools enable new data types to be created, the application builder tools do not enable editors associated with the new data types to be instantiated into property sheets. The inability to add new editors to property sheets prohibits any newly created data type and, as a result, any newly created property associated with a component, from being readily modified. That is, the new properties cannot be edited using a property sheet, and instead must be modified at the level of software at which the associated new data type was created. As a result, the customization of components and applications is basically restricted to the ability to modify only the fixed properties associated with a software component, while the modification of any new properties cannot be accomplished through the use of a property sheet. Modifying properties without the benefit of interfaces associated with a property sheet is generally inefficient and time-consuming.
Therefore, what is desired is a method and an apparatus which enables newly created properties for software components to be readily associated with a customizer, e.g., a property sheet. Specifically, what is desired is a method and an apparatus for creating editors for new properties which can be associated with, e.g., instantiated into, customizers to facilitate and enhance the customization of a component.